package com.example.city_home_app;

import android.net.Uri;

import java.util.ArrayList;
import java.util.List;

public interface ApiIface<T> {
    //登录注册相关
    void login(String username, String password, RetrofitListener<T> listener);
    void reg(String loginname,String email,String code,int codeid,int cityid,String username,String password,int gender,RetrofitListener<T> listener);
    void getcheckcode(String email,RetrofitListener<T> listener);
    void getcitylist(RetrofitListener<T> listener);
    void forgotpassword(String email,String code,int codeid,String password,RetrofitListener<T> listener);
    //新闻相关
    void getnewlist(int cityid , RetrofitListener<T> listener);
    void getnews(int newsid ,RetrofitListener<T> listener);
    void addnewsHot(int newsid, RetrofitListener<T> listener);
    void getNewsComment(int newsid,RetrofitListener<T> listener);
    void getReplyNewComment(int commentid,RetrofitListener<T> listener);
    void likenewcomment(int userid,int commentid,int newsid,RetrofitListener<T> listener);
    void unlikenewcomment(int userid,int commentid,int newsid,RetrofitListener<T> listener);
    void islikenewcomment(int userid,int commentid,RetrofitListener<T> listener);
    void getlikenewcomment(int userid,RetrofitListener<T> listener);
    void upnewcomment(int newsid,int userid,String content,RetrofitListener<T> listener);
    void replynewcomment(int newsid,int commentid,int userid,String content,RetrofitListener<T> listener);

    //社区相关
    void getcommunitylist(RetrofitListener<T> listener);
    void focuscommunity(int communityid,int userid,RetrofitListener<T> listener);
    void unfocuscommunity(int communityid,int userid,RetrofitListener<T> listener);
    void isfocuscommunity(int communityid,int userid,RetrofitListener<T> listener);
    void getpostlist(int type,int cityid,RetrofitListener<T>listener);
    void getpostlistforcommunity(int type,int cityid,int communityid,RetrofitListener<T>listener);
    void searchpost(String search,int cityid,RetrofitListener<T> listener);
    void uppostimgs(ArrayList<String> paths, RetrofitListener<T> listener);
    void delpostimgs(String urls,RetrofitListener<T> listener);
    void uppost(int cityid,int communityid,String title,String content,int userid,RetrofitListener<T> listener);
    void updatepost(int postid,String title,String content,RetrofitListener<T>listener);
    void getpost(int postid,RetrofitListener<T> listener);
    void focuspost(int postid,int userid,RetrofitListener<T> listener);
    void unfocuspost(int postid,int userid,RetrofitListener<T> listener);
    void isfocuspost(int postid,int userid,RetrofitListener<T> listener);
    void likepost(int postid,int userid,RetrofitListener<T> listener);
    void unlikespost(int postid,int userid,RetrofitListener<T> listener);
    void islikepost(int postid,int userid,RetrofitListener<T> listener);
    void uppostcomment(int postid,int userid,String content,RetrofitListener<T>listener);
    void delpostcomment(int commentid,RetrofitListener<T> listener);
    void replypostcomment(int commentid,int userid,String content,int postid,RetrofitListener<T> listener);
    void delreplypostcomment(int replyid,RetrofitListener<T> listener);
    void getpostcomment(int postid,RetrofitListener<T> listener);
    void getpostcommentreply(int commentid,RetrofitListener<T>listener);

    //朋友圈
    void getmomentlist(int cityid,RetrofitListener<T>listener);
    void getmomentlistforfocus(int userid,int cityid,RetrofitListener<T>listener);
    void likemoment(int momentid,int userid,RetrofitListener<T>listener);
    void unlikemoment(int momentid,int userid,RetrofitListener<T>listener);
    void islikemoment(int momentid,int userid,RetrofitListener<T>listener);
    void getmoment(int momentid,RetrofitListener<T>listener);
    void getmomentcomment(int momentid,RetrofitListener<T>listener);
    void upmomentcomment(int isreply,int userid,int momentid,String content,String pic,RetrofitListener<T> listener);
    void upmoment(int type, int userid,String content, ArrayList<String> file,RetrofitListener<T>listener);

    //个人
    void getuserinfo(int userid,RetrofitListener<T> listener);
    void focususer(int userid,int userfid,RetrofitListener<T> listener);
    void unfocususer(int userid,int userfid,RetrofitListener<T> listener);
    void isfocususer(int userid,int userfid,RetrofitListener<T> listener);
    void getusermomentlist(int userid,RetrofitListener<T> listener);
    void getuserpostlist(int userid,RetrofitListener<T>listener);
    void getmyfocuslist(int userid,RetrofitListener<T>listener);
    void getmyfocuspostlist(int userid,RetrofitListener<T>listener);
    void getmypostlikelist(int userid,RetrofitListener<T>listener);
    void getmymomentlikelist(int userid,RetrofitListener<T>listener);
    void updateusername(int userid,String name,RetrofitListener<T>listener);
    void updateuserintro(int userid,String intro,RetrofitListener<T>listener);
    void updateusergender(int userid,int gender,RetrofitListener<T>listener);
    void updateuserhaedimage(int userid,String path,RetrofitListener<T>listener);

    void getmessagelist(int userid,RetrofitListener<T>listener);
    void getmessage(int userid1,int userid2,RetrofitListener<T>listener);
    void sendnormalmessage(int userid1,int userid2,int type,String content,RetrofitListener<T>listener);
    void sendimagemessage(int userid1,int userid2,int type,String path,RetrofitListener<T>listener);

    void delmoment(int momentid,RetrofitListener<T>listener);
    void delpost(int postid,RetrofitListener<T>listener);

    void getversion(RetrofitListener<T>listener);
}
